package com.master.rn;

import java.util.ArrayList;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.master.bd.Cliente_ProdutoBD;
import com.master.ed.Cliente_ProdutoED;
import com.master.rl.JasperRL;
import com.master.util.Excecoes;
import com.master.util.bd.ExecutaSQL;
import com.master.util.bd.Transacao;

public class Cliente_ProdutoRN extends Transacao {

    public Cliente_ProdutoRN() {

    }

    public Cliente_ProdutoRN(ExecutaSQL executasql) {
		super(executasql);
	}

	public Cliente_ProdutoED inclui(Cliente_ProdutoED ed) throws Excecoes {

        try {
            this.inicioTransacao();
            ed = new Cliente_ProdutoBD(this.sql).inclui(ed);
            this.fimTransacao(true);
            return ed;
        } catch (Excecoes exc) {
            this.abortaTransacao();
            throw exc;
        } catch (RuntimeException exc) {
            this.abortaTransacao();
            throw exc;
        }
    }

    public void altera(Cliente_ProdutoED ed) throws Excecoes {

        try {
            this.inicioTransacao();
            new Cliente_ProdutoBD(this.sql).altera(ed);
            this.fimTransacao(true);
        } catch (Excecoes exc) {
            this.abortaTransacao();
            throw exc;
        } catch (RuntimeException exc) {
            this.abortaTransacao();
            throw exc;
        }
    }

    public void deleta(Cliente_ProdutoED ed) throws Excecoes {

        try {
            this.inicioTransacao();
            new Cliente_ProdutoBD(this.sql).deleta(ed);
            this.fimTransacao(true);
        } catch (Excecoes exc) {
            this.abortaTransacao();
            throw exc;
        } catch (RuntimeException exc) {
            this.abortaTransacao();
            throw exc;
        }
    }

    public ArrayList lista(Cliente_ProdutoED ed) throws Excecoes {

        try {
            this.inicioTransacao();
            return new Cliente_ProdutoBD(sql).lista(ed);
        } finally {
            this.fimTransacao(false);
        }
    }

    public Cliente_ProdutoED getByRecord(Cliente_ProdutoED ed) throws Excecoes {

        try {
            this.inicioTransacao();
            return new Cliente_ProdutoBD(this.sql).getByRecord(ed);
        } finally {
            this.fimTransacao(false);
        }
    }

    public ArrayList getAllClasses() throws Excecoes {

        try {
            this.inicioTransacao();
            return new Cliente_ProdutoBD(sql).getAllClasses();
        } finally {
            this.fimTransacao(false);
        }
    }

    protected void finalize() throws Throwable {
        super.finalize();
        if (this.sql !=  null)
            this.abortaTransacao();
    }
}
